#include <iostream>
using namespace std;
#include <string>


//int main()
//{
//	string s1("hello world");
//	string s2;
//
//	cout << s2 << endl;
//	cout << s1 << endl;
//
//	return 0;
//}


//int main()
//{
//	string s1;
//	string s2("hello world");
//	string s3(s2);
//
//	cout << s1 << endl;
//	cout << s2 << endl;
//	cout << s3 << endl;
//
//
//	string s4(s2, 2, 8);
//	string s5(s2, 2);
//	cout << s4 << endl;
//	cout << s5 << endl;
//
//	string s6("hello world", 5);
//	cout << s6 << endl;
//
//	string s7(7, 'x');
//	cout << s7 << endl;
//
//	return 0;
//}


//int main()
//{
//	string s1("github");
//
//	for (int i = 0; i < s1.size(); i++)
//	{
//		cout << s1[i] << " ";
//	}
//	cout << endl;
//
//	/*int begin = s1.begin();
//	int end = s1.end();*/
//
//	size_t begin = 0, end = s1.size() - 1;
//	while (begin < end)
//	{
//		/*char tmp = s1[begin];
//		s1[begin] = s1[end];
//		s1[end] = tmp;*/
//		swap(s1[begin], s1[end]);
//
//		++begin;
//		--end;
//	}
//	cout << s1 << endl;
//
//	string s2 = s1;
//	cout << s2 << endl;
//
//	return 0;
//}


//int main()
//{
//	string s1("not github but gitee");
//	string::iterator it = s1.begin();
//
//
//	while (it != s1.end())
//	{
//		cout << *it << " ";
//		it++;
//	}
//	cout << endl;
//
//	/*reverse(s1.begin(), s1.end());
//	cout << s1 << endl;*/
//
//	//const string s2(s1);
//	// reverse(s2.begin(), s2.end());
//
//	/*string::const_iterator it2 = s2.begin();
//	while (it2 != s2.end())
//	{
//		cout << *it2 << " ";
//		it2++;
//	}
//	cout << endl;*/
//
//	string s3(s1);
//	string::reverse_iterator it3 = s3.rbegin();
//	while (it3 != s3.rend())
//	{
//		cout << *it3 << " ";
//		it3++;
//	}
//	cout << endl;
//
//	return 0;
//}


//class string
//{
//private:
//	char* _str;
//	int _top;
//	int _capacity;
//};


//int main()
//{
//	string s1("hello world");
//
//	string::iterator it = s1.begin();
//	while (it != s1.end())
//	{
//		cout << *it << " ";
//	}
//	cout << endl;
//
//
//	return 0;
//}


int main()
{
	string s1("hello world");

	string::reverse_iterator it = s1.rbegin();
	while (it != s1.rend())
	{
		cout << *it << " ";
		it++;
	}
	cout << endl;

	return 0;
}